三、Linux + GCC
3.1 目录结构

text
项目目录/
├── include/
│ └── api/ # SDK 头文件目录
├── lib/
│ └── libnrc_host.so # Linux 动态库
├── src/
│ └── main.cpp
└── Makefile3.2 Makefile
makefile
TARGET=demo
all:
g++ -o $(TARGET) src/*.cpp -I./include -L./lib -lnrc_host -lpthread -lm -ldl -lrt -lstdc++ -std=c++11 -fPIC
clean:
rm -f $(TARGET)3.3 运行时动态库路径
编译成功后运行前,需要让系统能找到 libnrc_host.so:
bash
# 方式一:设置 LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
./demo
# 方式二:将库复制到系统目录
sudo cp lib/libnrc_host.so /usr/local/lib/
sudo ldconfig
./demo3.4 最小连接代码
cpp
#include <iostream>
#include <unistd.h>
#include "cpp_interface/nrc_api.h"
int main() {
std::cout << "正在连接控制器..." << std::endl;
SOCKETFD fd = connect_robot("192.168.1.15", "6001");
if (fd <= 0) {
std::cout << "连接失败" << std::endl;
return 1;
}
// 等待连接就绪
while (get_connection_status(fd) != 0) {
usleep(200000);
}
std::cout << "连接成功: " << fd << std::endl;
std::cout << "SDK 版本: " << get_library_version() << std::endl;
std::cout << "连接状态: " << get_connection_status(fd) << std::endl;
// 断开连接
disconnect_robot(fd);
return 0;
}3.5 编译运行
bash
make
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
./demo输出 连接成功: 1 即表示配置正确。
下一步
完成连接测试后,请浏览接口示例了解更多 API 用法。